מבוא למדעי המחשב תרגול 10 הממשקים Iterator, Iterable Binary trees
|
|
- Alexander Jennings
- 5 years ago
- Views:
Transcription
1 מבוא למדעי המחשב 2017 תרגול 10 הממשקים Iterator, Iterable Binary trees
2 בתרגול היום ממשקים: Iterator Filter DynamicArrayFilterIterator עצים בינאריים.
3 תזכורת: Iterator מידע ונתונים )data( הדרושים לתכנית מחשב נשמרים בתוך מבנה נתונים structure(.)data על מבנה נתונים לתמוך במספר נתונים והוצאת נתונים. פעולות, כמו הכנסת אחת הדרכים להוציא נתונים היא לעבור על אוסף הנתונים פריט-מידע אחר פריט-מידע. האחריות על מבנה הנתונים היא של המתכנת שלו, ברצוננו להקל על המשתמש במבנה הנתונים ככל הניתן.
4 תזכורת: הממשק Iterator public interface Iterator { /** * Returns true if the iteration has more elements. true if the iterator has more elements. */ boolean hasnext(); /** * Returns the next element in the iteration. the next element in the iteration. NoSuchElementException iteration has no more elements. */ Object next(); /** UnsupportedOperationException when called */ void remove(); // ignored 4
5 תזכורת: מימוש DynamicArrayIterator public class DynamicArrayIterator implements Iterator { private DynamicArray array ; private int index ; public DynamicArrayIterator(DynamicArray array) { this(array, 0) ; public DynamicArrayIterator(DynamicArray array, int index) { this.array = array ; this.index = index ; public boolean hasnext() { return index < array.size() ; public Object next() { if(!hasnext()) throw new NoSuchElementException() ; Object next = array.get(index) ; index = index+1 ; return next ; 5
6 תזכורת: דוגמא DynamicArrayIterator public static void main(string[] args) { DynamicArray array = new DynamicArray() ; Student s1 = new Student("Yossi"); Student s2 = new Student( Omar"); Student s3 = new Student("Yoni"); Student s4 = new Student("Eyal"); array.add(s1); array.add(s2); array.add(s3); array.add(s4); DynamicArrayIterator students = new DynamicArrayIterator(array); while (students.hasnext()) { Object currentdata = students.next(); Student s = (Student) currentdata; System.out.print(s.getName() + " "); 6
7 הממשק Filter public interface Filter { במגוון מקרים נרצה לסנן את מבנה הנתונים בדרכים שונות. לשם כך נגדיר את הממשק.Filter { /** * Test if obj meets this filter s condition. obj object to test against condition. true iff the condition is met. */ public boolean meetscond(object obj); הממשק מגדיר שיטה שמחזירה האם האובייקט עומד בתנאי. 7
8 המחלקה StudentsNameFilter Filter נגדיר את המחלקה StudentsNameFilter בנאי המחלקה מקבל תו StudentsNameFilter.c אובייקט obj עומד בתנאי של האובייקט הוא מטיפוס.Student שם הסטודנט מתחיל באות c. אשר מממשת את הממשק אם: 8
9 מימוש המחלקה StudentsNameFilter public class StudentsNameFilter implements Filter { private char c; public StudentsNameFilter(char c) { this.c = c; public boolean meetscond(object obj) { if (obj instanceof Student) { Student s = (Student)obj; char firstletter = s.getname().charat(0); return this.c == firstletter; return false; 9
10 המחלקה DynamicArrayFilterIterator נרצה לממש על Iterator Iterator עבור מערך דינאמי. זה להחזיר אך ורק סטודנטים ששמם מתחיל בתו מסויים. לשם כך נממש את המחלקה בכדי לממש את.DynamicArrayFilterIterator Iterator עלינו לממש את הפונקציות הבאות: boolean hasnext(); Object next(); 10
11 מימוש המחלקה DynamicArrayFilterIterator public class DynamicArrayFilterIterator implements Iterator { private DynamicArray array; private int index; private Filter f; private Object current; public DynamicArrayFilterIterator(DynamicArray array, Filter f) { this(array, f, 0); public DynamicArrayFilterIterator(DynamicArray array, Filter f, int index) { this.array = array; this.f = f; this.index = index; preparenext(); public void preparenext() { current = null; while (index < array.size() & current == null) { Object data = array.get(index); index = index + 1; if (f.meetscond(data)) { current = data; 11
12 מימוש המחלקה DynamicArrayFilterIterator public Object next() { if (!hasnext()) throw new NoSuchElementException(); Object ans = current; preparenext(); return ans; public boolean hasnext() { return (current!= null); 12
13 דוגמת שימוש בDynamicArrayFilterIterator public static void main(string[] args) { Student s1 = new Student("Yossi"); Student s2 = new Student( Omar"); Student s3 = new Student("Yoni"); Student s4 = new Student("Eyal"); DynamicArray array = new DynamicArray() ; array.add(s1); array.add(s2); array.add(s3); array.add(s4); StudentsNameFilter f = new StudentsNameFilter('Y'); DynamicArrayFilterIterator YStudents = new DynamicArrayFilterIterator(array,f); while (YStudents.hasNext()) { Object currentdata = YStudents.next(); Student s = (Student)currentData; System.out.print(s.getName() + " "); 13
14 14 הפסקה
15 תזכורת: trees Binary public class BinaryTree { protected BinaryNode root; public BinaryTree(){ root = null; public boolean isempty(){ return root == null; public void insert(object element) { if (isempty()) root = new BinaryNode(element); else root.insert(element); public boolean contains(object element) { if (isempty()) return false; else return root.contains(element); public int height(){ if (isempty()) return -1; else return root.height(); public int size(){ if (isempty()) return 0; else return root.size(); 15
16 תזכורת: trees Binary public class BinaryTree { protected BinaryNode root; public String inorder() { if (isempty()) return ""; else return root.inorder(); 16
17 תזכורת: node Binary public class BinaryNode { protected Object data; protected BinaryNode left; protected BinaryNode right; public BinaryNode(Object element) { if (element == null) throw new NullPointerException(); this.data = element; left = null; right = null; public int height() { int res = 0; if (left!= null) res = left.height()+1; if (right!= null) res = Math.max(res, right.height()+1); return res; public boolean contains(object element) { boolean found = false; if (data.equals(element)) found = true; else if (left!= null && left.contains(element)) found = true; else if (right!= null && right.contains(element)) found = true; return found; public int size() { int res = 1; if (left!= null) res = res + left.size(); if (right!= null) res = res + right.size(); return res; 17
18 תזכורת: node Binary public class BinaryNode { public String inorder() { String res = ""; if (left!= null) res = res + left.inorder() + ", "; res = res + data.tostring(); if (right!= null) res = res + ", " + right.inorder(); return res; public boolean equals (Object other){ if (!(other instanceof BinaryNode)) return false; return equals(this, (BinaryNode)other); 18
19 הוספת node בצורה אקראית לעץ בינארי public class BinaryTree BinaryNode { public void insert(object element) { public if (Math.random() void insert(object < 0.5) { element) { if (isempty()) if (left == null) root = new left = new BinaryNode(element); else else left.insert(element); root.insert(element); else { if (right == null) right = new BinaryNode(element); else right.insert(element); 19
20 pre-order, in-order, post-order. מעבר על עצים בינאריים בביצוע הסריקות בעץ הנתון יתקבל סדר האיברים הבא: 1 : תחילי (pre-order) 6 3 1,6,8,5,2,9,3 תוכי :(in-order) 8 5 8,6,2,5,9,1,3 2 9 : סופי (post-order) 8,2,9,5,6,3,1 20
21 מעבר על עצים בינאריים public class BinaryTree { כיצד נראית סריקת post-order במחלקה בקוד? :BinaryTree: protected BinaryNode root; public String postorder() { if (isempty()) return ""; else return root.postorder(); 21
22 מעבר על עצים בינאריים public class BinaryNode { BinaryNode left; BinaryNode right; Object data; כיצד נראית סריקת post-order בקוד? במחלקה :BinaryNode: היכן בקוד נשלב את השורה "; " + data?res = res + " " + public String postorder() { String res = "";? if (left!= null) res = res + left. postorder();? if (right!= null) res = res + right. postorder(); res = res? + " " + data + " "; return res; 22
23 עצים בינאריים בחלק הבא נתמודד עם שאלות בנושא עצים בינאריים ברמת בחינה.
24 ) שאלה ( מועד א'
25 ) שאלה ( מועד א' 2011 במחלקה :BinaryTree public int countnodesatdepth (int depth){ int ans=0; if (root!= null) ans=root.countnodesatdepth(depth); return ans; 25
26 ) שאלה ( מועד א' 2011 במחלקה : BinaryNode public int countnodesatdepth(int depth) { if (depth==0) return 1; int leftcount=0; int rightcount=0; if (left!=null) leftcount=left.countnodesatdepth(depth-1); if (right!=null) rightcount=right.countnodesatdepth(depth-1); return leftcount+rightcount; 26
27 תמונת ראי של עץ בינארי בהינתן עץ בינארי נרצה לכתוב שיטה שתשנה את העץ לתמונת הראי שלו. לדוגמא:
28 תמונת ראי של עץ בינארי public class BinaryTree { במחלקה :BinaryTree public void mirror(){ if (root!= null) root.mirror(); 28
29 תמונת ראי של עץ בינארי public class BinaryNode { BinaryNode left; BinaryNode right; במחלקה :BinaryNode public void mirror() { if (left!=null) left.mirror(); if (right!=null) right.mirror(); BinaryNode temp = left; left = right; right = temp; 29
30 בעיית מסלול בסכום בהינתן עץ בינארי וסכום שסכומו x. לדוגמא: x החזר אמת אם קיים מסלול בעץ מהשורש לעלה כך tree.haspathsum(14) tree.haspathsum(2) True False 1 1 ג ג
31 בעיית מסלול בסכום במחלקה :BinaryTree public class BinaryTree { protected BinaryNode root; public boolean haspathsum(int sum) { if (root!= null) return root.haspathsum(sum); return sum==0; 31
32 בעיית מסלול בסכום public class BinaryNode { במחלקה :BinaryNode public boolean haspathsum(int sum) { boolean ansleft = false; boolean ansright = false; if (left == null & right == null) return (sum (Integer) data == 0); if (left!= null) ansleft = left.haspathsum(sum (Integer) data); if (!ansleft & right!= null) ansright = right.haspathsum(sum - (Integer)data); return (ansright ansleft); 32
33 Binary expression tree ניתן להשתמש בעצים בינאריים לייצוג ביטויים מתמטים. בעץ הנתון שמור הביטוי המתמטי הבא: (3 / ) 9 12)+6). כיצד נוכל לשחזר את הביטוי מהעץ הנתון? כיצד נוכל להימנע משימוש בסוגריים? /
34 Binary expression tree ניתן לייצג ביטויים מתמטים בעזרת סימון (RPN),Reverse Polish notation משימוש בסוגריים. RPN הינו סימון מתמטי בו האופרטור עוקב אחר כל האופרנדים שלו. לדוגמא, את הביטוי המתמטי 5 4) (3 נרשום כך: ובכך נמנע 3) / ) 9 (6+(12 אך ב RPN מן העץ הבינארי הנתון? / כיצד נוכל לשחזר את הביטוי המתמטי
מבוא למדעי המחשב תרגול 10 Comparator, Comparable, Binary Trees
מבוא למדעי המחשב 2018 תרגול 10 Comparator, Comparable, Binary Trees ראינו בהרצאה ממשקים Iterator Comparable Comparator עצים בינאריים BinaryNode,BinaryTree סריקות בתרגול היום ממשקים Comparable Comparator
More informationתזכורת: עץבינארי מבוא למדעי המחשב הרצאה 24: עצי חיפוש בינאריים
מבוא למדעי המחשב הרצאה 2: עצי חיפוש בינאריים תזכורת: עץבינארי בנוסףלרשימהמקושרת ומערך, הצגנומבנהנתונים קונקרטיחדש עץבינארי עץבינארימורכבמ: שורש תת-עץשמאלי תת-עץימני A B C D E F G 2 תזכורת: שורש ותתי-עצים
More informationמבוא למדעי המחשב תרגול 8 רשימה משורשרת כללית, Comparator
מבוא למדעי המחשב 2017 תרגול 8 רשימה משורשרת כללית, Comparator בתרגול היום. LinkedList בניית ההכללה מ- LinkIntList תרגול המבנה ושימושיו ממשקים: Comparator Sorted Linked List ל- LinkedList ע"י שימוש ב- Comparator
More informationתור שימושים בעולם התוכנה
מבוא למדעי המחשב הרצאה : Queue, Iterator & Iterable תור מבנה נתונים אבסטרקטי תור שימושים בעולם התוכנה השימושים של תורים בעולם התוכנה מזכירים מאוד תורים במציאות: )VoIP( )YouTube( מקלדת שידור סרט באינטרנט
More informationמבוא לתכנות ב- JAVA תרגול 7
מבוא לתכנות ב- JAVA תרגול 7 רקורסיה - הקדמה הגדרה רקורסיבית: חדר הוא מסודר אם צד שמאל שלו מסודר שלו מסודר. וצד ימין שיטת פתרון רקורסיבית: פתרון מופעים פשוטים יותר של בעיה בכדי לפתור את הבעיה המקורית רקורסיה
More informationעצים. מבני נתונים Iterators רשימות מקושרות עצים "רגילות" רקורסיביות
עצים 1 מבני נתונים Iterators רשימות מקושרות "רגילות" רקורסיביות עצים 2 1 עצים בינאריים סריקות על עצים עצי חיפוש מימוש Iterators לסריקה 3 עץ בינארי הינו מבנה נתונים המייצג עץ מושרש )כלומר עם שורש( עץ בינארי
More informationתוכנה 1 סמסטר א' תשע"א
General Tips on Programming תוכנה 1 סמסטר א' תשע"א תרגול מס' 6 מנשקים, דיאגרמות וביטים * רובי בוים ומתי שמרת Write your code modularly top-down approach Compile + test functionality on the fly Start with
More informationמצליחה. 1. int fork-bomb() 2. { 3. fork(); 4. fork() && fork() fork(); 5. fork(); printf("bla\n"); 8. return 0; 9. }
שאלה : (4 נקודות) א. ב. ג. (5 נקודות) הגדירו את המונח race-condition במדוייק לא להשמיט פרטים. ספקו דוגמא. (5 נקודות) מהו? Monitor נא לספק הגדרה מלאה. ( נקודות) ( נקודות) ציינו כמה תהליכים יווצרו בקוד הבא
More informationשאלה 1, סעיף ב )11 נק'(
שאלה 1, סעיף א )8 נק'( public static boolean lexlt(string s1, String s2) for (int i=0; i
More informationCS 151. Binary Search Trees. Wednesday, October 10, 12
CS 151 Binary Search Trees 1 Binary Search Tree A binary search tree stores comparable elements in a binary tree such that for every node r all nodes in the left BST are
More informationלתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions
מבוא לתיכנות עם MATLAB 23427 Lecture 5: Boolean logic and Boolean expressions Written by Prof. Reuven Bar-Yehuda, Technion 203 Based on slides of Dr. Eran Eden, Weizmann 2008 ביטויים לוגיים דוגמא: תקינות
More informationמערכים שעור מס. 4 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1
מערכים שעור מס. 4 דרור טובי דר' כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1 למה מערכים? ברצוננו לאחסן בתוכנית ציוני בחינה כדי לחשב את ממוצע הציונים וסטיית התקן. נניח ש 30 סטודנטים לקחו
More informationתרגול 6 רקורסיה ותכנות מונחה עצמים
מבוא למדעי המחשב 2017 תרגול 6 רקורסיה ותכנות מונחה עצמים מבוא למדעי המחשב 1 ראינו בהרצאה רקורסיה תכנות מונחה עצמים: מחלקה ואובייקט שדות, בנאים ושיטות מימוש מערך דינאמי של ראשוניים בתרגול היום רקורסיה הדפסת
More informationלתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions
מבוא לתיכנות עם MATLAB 234127 Lecture 5: Boolean logic and Boolean expressions Written by Prof. Reuven Bar-Yehuda, Technion 2013 Based on slides of Dr. Eran Eden, Weizmann 2008 1 >>g = [89 91 80 98]; >>p
More informationתוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes
תוכנה 1 תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes class Outer { static class NestedButNotInner {... class Inner {... מחלקות מקוננות NESTED CLASSES 2 מחלקה מקוננת Class) )Nested
More informationPractical Session #4 - ADTs: Array, Queue, Stack, Linked List
Practical Session #4 - ADTs: Array, Queue, Stack, Linked List Basic Data Structures and Abstract Data Types ADT Array Abstract Data Type A collection of data-storing entities with operations to create,
More information<exp> ::= <define> <cexp> <define> ::= ( define <var-decl> <cexp> ) / DefExp(var:VarDecl, val:cexp)
הנחיות כלליות: תאריך הבוחן: 10.5.2018 שם המרצה: מני אדלר,מיכאל אלחדד, ירון גונן מבחן בקורס: עקרונות שפות תכנות מס' קורס: 202-1-2051 מיועד לתלמידי: מדעי המחשב והנדסת תוכנה שנה: ב' סמסטר: ב' משך הבוחן: 2
More informationרזח יליגרתו םי יראני ב ם
מבוא למדעי המחשב עצים בינאריים ותרגילי חזרה תרגול 13: עצים בינאריים - הגדרה הגדרה: עץ בינארי הוא עץ ריק )בלי צמתים( או עץ המורכב משורש ושני תתי-עצים, הוא עץ בינארי. ימני ושמאלי, שכל אחד מהם שאלה עץ בינארי
More informationחומר עזר לבחינה במבוא למדעי המחשב // Indicates whether some other object is "equal to" // this one. boolean equals(object other)
חומר עזר לבחינה במבוא למדעי המחשב 202-1-1011 שיטות במחלקה Object // Indicates whether some other object is "equal to" // this one. boolean equals(object other) // Returns a string representation of the
More informationCarlos Delgado Kloos Mª Carmen Fernández Panadero Raquel M. Crespo García Dep. Ingeniería Telemática Univ. Carlos III de Madrid
Trees Carlos Delgado Kloos Mª Carmen Fernández Panadero Raquel M. Crespo García Dep. Ingeniería Telemática Univ. Carlos III de Madrid cdk@it.uc3m.es Java: Trees / 1 Contents Concept Non recursive definition
More informationמבני נתונים תכנות מונחה עצמים מבני נתונים. מחלקות אבסטרקטיות חבילות packages סיכום הרשאות גישה wrappers ADT מערך דינמי מחסנית
מבני נתונים 1 תכנות מונחה עצמים מחלקות אבסטרקטיות חבילות packages סיכום הרשאות גישה wrappers מבני נתונים ADT מערך דינמי מחסנית 2 1 מבני נתונים תור - Queue Iterators רשימות מקושרות "רגילות" 3 מבנה נתונים
More informationב ה צ ל ח ה! אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ה תשרי תשע"ח 15/10/17 שמות המורים: ציון סיקסיק מיועד לתלמידי : א'
אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ה תשרי תשע"ח 15/10/17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : א' מועד קיץ סמ' שנה תשע"ז 3 שעות משך
More informationמבוא למדעי המחשב תרגול 12 מחסנית )Stack( memoization
מבוא למדעי המחשב 2017 תרגול 12 מחסנית )Stack( memoization בתרגול היום מחסנית בדיקת איזון סוגריים בביטוי אריתמטי משולש Pascal לא רקורסיבי memoization דוגמאות שימוש: בעיית העודף תזכורת: מחסנית :)stack( מבנה
More informationגיליון תשובות מספר נבחן:
גיליון תשובות מספר נבחן: 03( שאלה 1 סעיף א )02 (i) //@PRE: checkinv(other.getx(),other.gety(),other.getradius()) //@POST: getradius() other.getradius() >= // Math.max(Math.abs(getY()-other.getY()),Math.abs(getX()-
More information- MEAN Stack חזרה. MongoDB - as the database Express - as the web framework AngularJS - as the frontend framework NodeJS- as the server platform
הדר פיקאלי תשע"ו - 2016 - MEAN Stack חזרה בניית web applications כרוכה בשימוש בטכנולוגיות וכלים שונים, להתמודדות עם: מסד נתונים, פעולות בצד השרת, טיפול בצד הלקוח והצגה של הנתונים. מהו?MEAN "MEAN is a fullstack
More informationמבוא למדעי המחשב תרגול 13: עצים בינאריים
מבוא למדעי המחשב תרגול 13: עצים בינאריים עצים בינאריים - הגדרה הגדרה: עץ בינארי הוא עץ ריק (בלי צמתים) או עץ המורכב משורש ושני תתי-עצים, הוא עץ בינארי. ימני ושמאלי, שכל אחד מהם תרגיל 1 עץ בינארי מסודר
More informationתוכנה 1 * לא בהכרח בסדר הזה
תוכנה 1 תרגול 7: מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה 2 מנשקים מנשקים מנשק )interface( הוא מבנה תחבירי ב- Java המאפשר לחסוך בקוד לקוח. מנשק מכיל כותרות של מתודות המימוש שלהן. )חתימות( ללא קוד אשר
More informationFigure 18.4 A Unix directory. 02/13/03 Lecture 11 1
Figure 18.4 A Unix directory 02/13/03 Lecture 11 1 Figure 18.7 The Unix directory with file sizes 02/13/03 Lecture 11 2 Figure 18.11 Uses of binary trees: (a) an expression tree and (b) a Huffman coding
More informationמבוא לתכנות ב- JAVA מעבדה 4
מבוא לתכנות ב- JAVA מעבדה 4 מה בתרגול מערכים מחרוזות מערך חד מימדי מערך הוא מבנה המחזיק סדרה של איברים מאותו טיפוס גודל המערך הוא קבוע )נקבע בעת יצירת המערך( הגישה לכל איבר היא באמצעות אינדקס למה לי מערך?
More informationת ונכת סרוק תורשוקמ תומישר :יעישת רועיש 1
קורס תכנות שיעור תשיעי: רשימות מקושרות 1 הקצאה דינאמית של מערכים דו-ממדיים )לפחות( שלוש גישות אפשריות:.1 מערך של מערכים מצביעים לתוך מערך "גדול".2 3. מצביע יחיד למערך גדול 2 The Interface 3 (Simple) Usage
More informationIMPLEMENTING BINARY TREES
IMPLEMENTING BINARY TREES Chapter 6 A Binary Tree BinaryTree a = new BinaryTree(); a A B C D E F 1 A Binary Tree BinaryTree a = new BinaryTree(); a A B C D E F A Binary
More informationלתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions
מבוא לתיכנות עם MATLAB 234127 Lecture 5: Boolean logic and Boolean expressions Written by Prof. Reuven Bar-Yehuda, Technion 2013 Based on slides of Dr. Eran Eden, Weizmann 2008 1 motivation Proper academic
More informationEngineering Programming A
Engineering Programming A תרגול 5 25.11.2012 מערכים חד-מימדיים )תזכורת( לדוגמא: מערך בשם Arr בגודל 8 שאיבריו מטיפוס int 3 7 5 6 8 1 23 16 0 1 2 3 4 5 6 7 ב - arr[0] ב יושב ערך שהוא המספר השלם 3 arr[1]
More informationCS 231 Data Structures and Algorithms Fall Binary Search Trees Lecture 23 October 29, Prof. Zadia Codabux
CS 231 Data Structures and Algorithms Fall 2018 Binary Search Trees Lecture 23 October 29, 2018 Prof. Zadia Codabux 1 Agenda Ternary Operator Binary Search Tree Node based implementation Complexity 2 Administrative
More informationCS 151. Binary Trees. Friday, October 5, 12
CS 151 Binary Trees 1 Binary Tree Examples Without telling you what a binary tree is, here are some examples (that I will draw on the board): The dots/circles are called nodes, or vertices (singular: one
More informationמבוא למדעי המחשב 2018 תרגול 7
מבוא למדעי המחשב 2018 תרגול 7 רשימות משורשרות, רקורסיית זנב 1 ראינו בהרצאה רשימות משורשרות רקורסיית זנב 2 בתרגול היום רשימות משורשרות עוד שיטות מחלקה רקורסיית זנב היפוך מחרוזות, חיפוש בינארי 3 רשימות משורשרות
More information1B1b Implementing Data Structures Lists, Hash Tables and Trees
1B1b Implementing Data Structures Lists, Hash Tables and Trees Agenda Classes and abstract data types. Containers. Iteration. Lists Hash Tables Trees Note here we only deal with the implementation of data
More informationFigure 18.4 A Unix directory. 02/10/04 Lecture 9 1
Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss 2002 Addison Wesley Figure 18.4 A Unix directory 02/10/04 Lecture 9 1 Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss 2002
More informationתוכנה 1 * לא בהכרח בסדר הזה
תוכנה 1 תרגול 7: מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה 2 מנשקים מנשקים - תזכורת מנשק )interface( הוא מבנה תחבירי ב- Java המאפשר לחסוך בקוד לקוח. מנשק מכיל כותרות של מתודות )חתימות(. מימוש דיפולטיבי
More informationThe tree data structure. Trees COL 106. Amit Kumar Shweta Agrawal. Acknowledgement :Many slides are courtesy Douglas Harder, UWaterloo
The tree data structure 1 Trees COL 106 Amit Kumar Shweta Agrawal Acknowledgement :Many slides are courtesy Douglas Harder, UWaterloo 1 Trees The tree data structure 3 A rooted tree data structure stores
More informationComputer Science 136 Exam 2
Computer Science 136 Exam 2 Sample exam Show all work. No credit will be given if necessary steps are not shown or for illegible answers. Partial credit for partial answers. Be clear and concise. Write
More informationדף הדרכה ליצירת שרת/ לקוח עם GUI
דף הדרכה ליצירת שרת/ לקוח עם GUI בשיעורים הקודמים למדנו כיצד ליצור שרת לקוח פשוט, ויצירת טופס המכיל פקדים כלומר יצירת GUI למשתמש, בשיעור זה נרצה להראות את הדרך לשילוב בין השניים כלומר ליצור לקוח client
More informationPractical Session No. 14 Topological sort,amortized Analysis
Practical Session No. 14 Topological sort,amortized Analysis Topological- Sort Topological sort Ordering of vertices in a directed acyclic graph (DAG) G=(V,E) such that if there is a path from v to u in
More informationRecursion. Example 1: Fibonacci Numbers 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
Example 1: Fibonacci Numbers 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, Recursion public static long fib(int n) if (n
More informationCOM S 211/ENGRD 211 May 15, 2003
COM S 211/ENGRD 211 May 15, 2003 Final Exam 3:00 PM 5:30 PM Information: Name (clearly print last, first, middle): Net ID: CU ID: I have followed the rules of academic integrity on this exam (sign): Instructions:
More informationתרגול 7 רשימות משורשרות, רקורסיית
מבוא למדעי המחשב 2018 תרגול 7 רשימות משורשרות, רקורסיית זנב 1 ראינו בהרצאה רשימות משורשרות רקורסיית זנב 2 בתרגול היום רשימות משורשרות עוד שיטות מחלקה רקורסיית זנב היפוך מחרוזות, חיפוש בינארי 3 רשימות משורשרות
More informationעמוד 1 (תאריך ( âùéä ער äìàù בכל השאלות ניתן להניח שהקלט תקין. 100 íåëñ חורף :
עמוד 1 מבוא למדעי המחשב מ' 234114 מבוא למדעי המחשב ח' 234117 מבחן מועד א', סמסטר חורף תשס"ב (תאריך ( 29.1.03 שם משפחה שם פרטי מס' סטודנט âùéä ער äìàù 15 1 15 2 16 3 18 4 16 5 20 6 100 íåëñ חומר עזר: אין
More informationמבוא לתכנות תוכנית שעור מס. 1 1 דר' דרור טובי, המרכז האוניברסיטאי אריאל בשומרון.
מבוא לתכנות תוכנית ראשונה שעור מס. 1 דרור טובי דר' 1 מבוא לתכנות בשפת ++C C \ שלום!! מרצה ד"ר דרור טובי, drorto@ariel.ac.il שעות קבלה: יום ב, 10-12 טלפון )אריאל( 03 9076547 אתר הקורס: http://www.ariel.ac.il/cs/pf/tdror/courses/cpp
More informationBinary Trees: Practice Problems
Binary Trees: Practice Problems College of Computing & Information Technology King Abdulaziz University CPCS-204 Data Structures I Warmup Problem 1: Searching for a node public boolean recursivesearch(int
More informationנתונות שתי המחלקות הבאות:
ממבחנים שאלות מבנה הנתונים תור (queue) הוא מבנה הדומה למחסנית (stack) שנלמדה בקורס. לתור ניתן להוסיף איברים (ע"י פעולה הנקראת (enqueue וניתן להסיר את האיבר שבראש התור,(dequeue) כלומר האיבר הוותיק ביותר
More informationObject-Oriented Analysis and Design
Object-Oriented Analysis and Design Session 2a: Structure Modeling Object-Oriented Analysis and Design 1 Outline 1. Objects and Classes 4 2. Basic Association Concepts.17 3. Class Diagrams and Object (instance)
More informationAbout This Lecture. Trees. Outline. Recursive List Definition slide 1. Recursive Tree Definition. Recursive List Definition slide 2
Revised 21-Mar-05 About This Lecture 2 Trees In this lecture we study a non-linear container called a Tree and a special kind of Tree called a Binary Tree. CMPUT 115 - Lecture 18 Department of Computing
More informationתוכנה 1 מערכים. Array Creation and Initialization. Array Declaration. Array Creation and Initialization. Loop through Arrays
מערכים Array: A fixed-length data structure for storing multiple values of the same type תוכנה 1 Example: An array of odd numbers: Indices (start from 0) 0 1 2 3 4 5 6 7 odds: 1 3 5 7 9 11 13 15 odds.length
More informationJAVA NOTES DATA STRUCTURES
135 JAVA NOTES DATA STRUCTURES Terry Marris August 2001 16 BINARY SEARCH TREES 16.1 LEARNING OUTCOMES By the end of this lesson the student should be able to draw a diagram showing a binary search tree
More informationCMSC 132, Object-Oriented Programming II Summer Lecture 6:
CMSC 132, Object-Oriented Programming II Summer 2017 Lecturer: Anwar Mamat Lecture 6: Disclaimer: These notes may be distributed outside this class only with the permission of the Instructor. 6.1 Singly
More informationTutorial 10. Introduction to C++ שימו
Introduction to ++ שימו תרגול זה אינו התרגול הרישמי של הקורס. הוא מבוסס על חוברת התרגולים אך מכיל שינויים, הסברים נוספים ודוגמאות שונות או נוספות. + + תוכנ ית רא שונה ב הכרו ת עם + + תרגול // First ++
More informationתוכנה 1 3 תרגול מס' מערכים ומבני בקרה
תוכנה 1 3 תרגול מס' מערכים ומבני בקרה מערכים Array: A fixed-length data structure for storing multiple values of the same type Example: An array of odd numbers: Indices (start from 0) 0 1 2 3 4 5 6 7 odds:
More informationגיליון תשובות מספר נבחן:
גיליון תשובות מספר נבחן: 30( שאלה 1 נקודות( א. ב. התכונה הנשמרת מתייחסת אך ורק למיקום המכוניות בצומת, כלומר למיקום המכוניות בשדה _cars הגישה לשדה זה מסונכרנת, אך מצד שני אין בדיקה של מיקום המכונית טרם
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 11: Binary Search Trees MOUNA KACEM mouna@cs.wisc.edu Fall 2018 General Overview of Data Structures 2 Introduction to trees 3 Tree: Important non-linear data structure
More informationBasic Data Structures
Basic Data Structures Some Java Preliminaries Generics (aka parametrized types) is a Java mechanism that enables the implementation of collection ADTs that can store any type of data Stack s1
More informationסכום (סדרת ערכים) אחרת - דוגמא: סכום-ספרות (num) אם < 10 num החזר 1 או אם = 0 = num החזר 0 public static int numofdigits (int num)
1 תבנית צבירה תבניות אלגוריתמיות לפעולות רקורסיביות תבנית צבירה לסדרת ערכים: סכום (סדרת ערכים) החזר את ערך הקצה + סכום (סדרת הערכים ללא ערך הקצה) דוגמא: פעולה המחזירה את סכום הספרות שבמספר שלם לא שלילי
More informationIntroduction to Programming in C תרגול 8
Introduction to Programming in C תרגול 8 1 1 נושאים מצביעים רקע אופרטורים על מצביעים מצביעים כפרמטרים לפונקציה הקצאה דינמית מבנים תאור הזיכרון של המחשב: מצביעים ניתן לחשוב על זיכרון המחשב כעל רצף של תאים,
More information1.00/1.001 Introduction to Computers and Engineering Problem Solving. Final Exam
1.00/1.001 Introduction to Computers and Engineering Problem Solving Final Exam Name: Email Address: TA: Section: You have three hours to complete this exam. For coding questions, you do not need to include
More informationמשתנים שעור מס. 2 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1
משתנים שעור מס. 2 דרור טובי דר' כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1 תפקיד המשתנים הצהרה על משתנה השמת ערך במשתנה int a, b, c; a = 1234; b = 99; c = a + b; משתנים מאפשרים לנו לשמור
More informationPractical Session - Heap
Practical Session - Heap Heap Heap Maximum-Heap Minimum-Heap Heap-Array A binary heap can be considered as a complete binary tree, (the last level is full from the left to a certain point). For each node
More informationBasic Data Structures 1 / 24
Basic Data Structures 1 / 24 Outline 1 Some Java Preliminaries 2 Linked Lists 3 Bags 4 Queues 5 Stacks 6 Performance Characteristics 2 / 24 Some Java Preliminaries Generics (aka parametrized types) is
More informationסעיף ב )11 נקודות( public synchronized void advance(staircase staircase) throws InterruptedException staircase!
גיליון תשובות מספר נבחן: 03( שאלה 1 סעיף א )10 @INV: 0
More information- במפלס התחתון (בתחתית המדרגות) ובמפלס העליון (בראש המדרגות) יש מקום לכל הולכי הרגל
אוניברסיטת בן-גוריון מדור בחינות מספר נבחן: רשמו תשובותיכם בגיליון התשובות בלבד תשובות מחוץ לגיליון לא יבדקו. בהצלחה! תאריך הבחינה: 24.1.2011 שם המורה: פרופ' מיכאל אלחדד ד"ר מני אדלר ד"ר אנדרי שרף שם הקורס:
More informationתוכנה 1 מערכים. Array Creation and Initialization. Array Declaration. Loop through Arrays. Array Creation and Initialization
מערכים תוכנה 1 Array: A fixed-length data structure for storing multiple values of the same type Example from last week: An array of odd numbers: Indices (start from 0) 0 1 2 3 4 5 6 7 תרגול 2: מערכים
More informationa graph is a data structure made up of nodes in graph theory the links are normally called edges
1 Trees Graphs a graph is a data structure made up of nodes each node stores data each node has links to zero or more nodes in graph theory the links are normally called edges graphs occur frequently in
More informationהיצביט ומ - ןוכית ת וי נבת
תבני ו ת תיכון Patterns) (Design תבנ יו ת תיכון - מו טיבציה בחיי היום יום אנחנו מתארים דברים תוך שימוש בתבניות חוזרות: "מכונית א' היא כמו מכונית ב', אבל יש לה 2 דלתות במקום 4" "אני רוצה ארון כמו זה, אבל
More information3 Dynamic Routing A (RIP and OSPF)
אוניברסיטת בן גוריון בנגב המחלקה להנדסת מערכות תקשורת רשתות תקשורת מחשבים - 2 קורס 37110211 מעבדה בתקשורת מחשבים 3 Dynamic Routing A (RIP and OSPF) בשבוע (29/11/2011) 5 בשבוע (13/12/2011) 7 מעבדה מספר
More informationCMSC 132, Object-Oriented Programming II Summer Lecture 9:
CMSC 132, Object-Oriented Programming II Summer 2018 Lecturer: Anwar Mamat Lecture 9: Disclaimer: These notes may be distributed outside this class only with the permission of the Instructor. 9.1 QUEUE
More informationBinary Search Tree 1.0. Generated by Doxygen Mon Jun :12:39
Binary Search Tree 1.0 Generated by Doxygen 1.7.1 Mon Jun 6 2011 16:12:39 Contents 1 Binary Search Tree Program 1 1.1 Introduction.......................................... 1 2 Data Structure Index 3
More informationThe Problem with Linked Lists. Topic 18. Attendance Question 1. Binary Search Trees. -Monty Python and The Holy Grail
Topic 18 Binary Search Trees "Yes. Shrubberies are my trade. I am a shrubber. My name is 'Roger the Shrubber'. I arrange, design, and sell shrubberies." -Monty Python and The Holy Grail The Problem with
More informationמבוא לתכנות בשפת C. Tzachi (Isaac) Rosen
מבוא לתכנות בשפת C מצביעים והקצאה דינאמית כתובות של משתנים לכל משתנה כתובת של המקום שלו בזיכרון כבר ראינו: שם של מערך הוא למעשה הכתובת של התא הראשון )באינדקס 0( של המערך להזכירכם: תא של מערך הינו משתנה
More informationמבוא לתכנות מערכות מבחן מועד א' סמסטר חורף
הפקולטה למדעי המחשב פרופ' גיל ברקת נועם שגב, שרי דואק, רן ברואר, דור כהן הטכניון מכון טכנולוגי לישראל 70.70.07.4 מבוא לתכנות מערכות 024.00 מבחן מועד א' סמסטר חורף 07.207.4 הוראות כלליות משך המבחן: 081
More informationProgramming in C תרגול 8
Programming in C תרגול 8 1 1 נושאים מצביעים רקע אופרטורים על מצביעים מצביעים כפרמטרים לפונקציה הקצאת זיכרון דינאמית Malloc free מצביעים תאור הזיכרון של המחשב: ניתן לחשוב על זיכרון המחשב כעל רצף של תאים,
More informationpublic class B { private int f = 0; public static void main(string[] args) { B b1 = new B(); B b2 = new B(); Object b3 = b1;
main /***/ public class B { private int f = 0; public static void main(string[] args) { B b1 = new B(); B b2 = new B(); Object b3 = b1; System.out.println(/***/); @Override public boolean equals(object
More informationתוכנה 1 טיפוסי השפה טיפוסים לא פרימיטיביים הטיפוסים הפרימיטיביים מחרוזות המרה למספרים תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות
טיפוסי השפה תוכנה 1 תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות טיפוסים יסודיים (פרימיטיביים): 8 טיפוסים מוגדרים בשפה שמיועדים להכיל ערכים פשוטים: מספרים שלמים: byte, short, int, long מספרים ממשיים: float,
More informationASP.Net Web API.
ASP.Net Web API 1 מה זה? Web API View בלבד ולא Data אותו מממש השרת והוא מחזיר לקליינט API הוא Web API הבקשה והתשובה הן בפרוטוקול Http\Https הקליינטים של Web API יכולים להיות רבים : אפשר להשתמש גם בMVC
More informationTree: non-recursive definition. Trees, Binary Search Trees, and Heaps. Tree: recursive definition. Tree: example.
Trees, Binary Search Trees, and Heaps CS 5301 Fall 2013 Jill Seaman Tree: non-recursive definition Tree: set of nodes and directed edges - root: one node is distinguished as the root - Every node (except
More informationCS211, LECTURE 20 SEARCH TREES ANNOUNCEMENTS:
CS211, LECTURE 20 SEARCH TREES ANNOUNCEMENTS: OVERVIEW: motivation naive tree search sorting for trees and binary trees new tree classes search insert delete 1. Motivation 1.1 Search Structure continuing
More informationהנכות 1 םוכיס לוגרת 13 1
תוכנה 1 סיכום תרגול 13 1 קצת על מנשקים מנשק יכול להרחיב יותר ממנשק אחד שירותים במנשק הם תמיד מופשטים וציבוריים public interface MyInterface { public abstract int foo1(int i); int foo2(int i); The modifiers
More informationCSE 143 Sp03 Final Exam Sample Solution Page 1 of 13
CSE 143 Sp03 Final Exam Sample Solution Page 1 of 13 Question 1. (3 points) Java classifies exceptions as either checked or unchecked. For each of the following, indicate whether it is checked or unchecked
More information1.00 Introduction to Computers and Engineering Problem Solving. Final Examination - May 19, 2004
1.00 Introduction to Computers and Engineering Problem Solving Final Examination - May 19, 2004 Name: E-mail Address: TA: Section: You have 3 hours to complete this exam. For coding questions, you do not
More informationשאלה 1 מהו הפלט של התוכנית הבאה:
תרגול חזרה שאלה 1 מהו הפלט של התוכנית הבאה: public sttic int wht(int n) { int i; int sum=0; if(n == 0) return 1; for (i=0; i
More informationתרגול 4 פונקציות. מבנה של פונקציה: public static <return value type> <function name> (<arg1 type> <arg1>, <arg2 type> <arg2>, ) { <function body> }
נושאי התרגול: מה הן פונקציות הגדרת פונקציה,קריאה לפונקציה העברת ארגומנטים,החזרת ערך או void העברת משתנים פרימיטיביים ומערכים לפונקציה העמסה של פונקציות תרגול 4 פונקציות מוטיבציה לעיתים,אנו נזקקים לבצע
More informationמבוא למדעי המחשב השפעת השינוי על סטודנט הרצאה 18: פולימורפיזם ומחלקות אבסטרקטיות אם ברצוננו ששכר הלימוד לא יעלה על 2500.
public class { private static final int COURSE_PRICE = 1000; private String nae; private int id; private int nuofcourses; מבוא למדעי המחשב הרצאה 18 פולימורפיזם ומחלקות אבסטרקטיות תזכורת public (int id,
More informationImplementing a List in Java. CSE 143 Java. Just an Illusion? List Interface (review) Using an Array to Implement a List.
Implementing a List in Java CSE 143 Java List Implementation Using Arrays Reading: Ch. 13 Two implementation approaches are most commonly used for simple lists: Arrays Linked list Java Interface List concrete
More informationName Section Number. CS210 Exam #3 *** PLEASE TURN OFF ALL CELL PHONES*** Practice
Name Section Number CS210 Exam #3 *** PLEASE TURN OFF ALL CELL PHONES*** Practice All Sections Bob Wilson OPEN BOOK / OPEN NOTES: You will have all 90 minutes until the start of the next class period.
More informationTitle Description Participants Textbook
Podcast Ch17b Title: Iterative Tree Traversal Description: Iterative tree traversal; the InorderIterator Class; program 17.2 Participants: Barry Kurtz (instructor); John Helfert and Tobie Williams (students)
More information22 Traversing ArrayList
22 Traversing ArrayList Introduction By now we are aware of the fact that there are many different ways to represent the same information. We have also seen that the same structure of data can represent
More informationMULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR
STUDENT IDENTIFICATION NO MULTIMEDIA COLLEGE JALAN GURNEY KIRI 54100 KUALA LUMPUR FIFTH SEMESTER FINAL EXAMINATION, 2014/2015 SESSION PSD2023 ALGORITHM & DATA STRUCTURE DSEW-E-F-2/13 25 MAY 2015 9.00 AM
More informationBirkbeck (University of London) Software and Programming 1 In-class Test Mar 2018
Birkbeck (University of London) Software and Programming 1 In-class Test 2.1 22 Mar 2018 Student Name Student Number Answer ALL Questions 1. What output is produced when the following Java program fragment
More informationGraph Database, think different!
Graph Database, think different! Written by Roni Licher Winter 2014-2015 236363 - Database Systems - Technion Nodes Edges (directed or not) Properties Neo4j and Cypher 4j Graph database (Like SQL server
More informationCMSC 206: Data Structures Final Exam Reference May 2018
CMSC 206: Data Structures Final Exam Reference May 2018 public interface BMCSet /** Adds a new item to the set * @param item The new item to add to the set * @return true if the item is a new item added
More informationD. Do inorder traversal on tree, values in ascending order, no repeats.
CS314 Fall 2011 Final Solution and Grading Criteria. Grading acronyms ABA - Answer by Accident AIOBE - Array Index out of Bounds Exception may occur BOD - Benefit of the Doubt. Not certain code works,
More informationהנכות 1 םוכיס לוגרת 13 1
תוכנה 1 סיכום תרגול 13 1 בחינה באופק! הבחינה תכלול את כל הנושאים שכיסינו במהלך הסמסטר: כל ההרצאות כל תרגולים כל תרגילי בית חומר סגור שאלות אמריקאיות 2 קצת על מנשקים מנשק יכול להרחיב שירותים במנשק הם תמיד
More informationחומר עזר לבחינה מבוא למדעי המחשב
שיטות במחלקה Object // Indicates whether some other object is "equal to" // this one. boolean equals(object other) // Returns a string representation of the object. String tostring() // Returns the length
More information